//
// Created on 6/1/25.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef NEURONVIEW_LOADER_H
#define NEURONVIEW_LOADER_H

#include "geometry.h"
#include <string>
#include "glm/fwd.hpp"
#include "graph.h"
class Loader {
public: 
    Loader();
    virtual ~Loader();
    virtual std::shared_ptr<Geometry> load(std::string filename);
protected:
    float m_scale=0.01;
private:
    std::string m_fileName="";
    
};
class SWCLoader:public Loader{
public:
    SWCLoader();
    ~SWCLoader();
    virtual std::shared_ptr<Geometry> load(std::string filename);
    void CreateSingleNode(std::shared_ptr<PropertyType<glm::vec3>> position,Vertex *v);
    std::vector<int>m_EdgeIndex;
    
};
#endif //NEURONVIEW_LOADER_H
